#食物类
class Food:
    name = None
    def __init__(self , name):
        self.name = name
#鱼类  继承 食物类
class Fish(Food):
    pass

#骨头类 继承  食物类
class Bone(Food):
    pass

#动物类
class Animal:
    name = None
    def __init__(self , name):
        self.name = name

#猫类  继承动物类
class Cat(Animal):
    pass

#狗类 继承了动物类
class Dog(Animal):
    pass

#主人类
class Master:
    name = None
    def __init__(self , name):
        self.name = name

    #给猫猫喂鱼
    def feed_cat(self , cat : Cat , fish : Fish):
        print(f"主人{self.name} 给动物:{cat.name}喂的食物是{fish.name}")

    #给小狗喂骨头
    def feed_dog(self , dog : Dog , bone : Bone):
        print(f"主人{self.name} 给动物:{dog.name}喂的食物是{bone.name}")


#测试
master: Master = Master('老刘')
cat : Cat = Cat("小花猫")
fish : Fish = Fish("黄花鱼")
dog : Dog = Dog("大黄狗")
bone : Bone = Bone("大棒骨")
master.feed_cat(cat , fish)
master.feed_dog(dog , bone)


#传统问题带来的问题是什么,如何解决
#(1)问题是:代码复用性不高,而且不利于代码的维护和扩展功能
#(2).解决方案,引出我们要讲解的多态